package com.lelouch.wetlandsystem.mongorepository.service;


import com.lelouch.wetlandcommon.common.ServerResponse;
import com.lelouch.wetlandcommon.domain.WetlandBasicEntity;
import com.lelouch.wetlandsystem.mongorepository.param.WetlandBasicEntityParam;
import org.bson.Document;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface WetlandBasicEntityServive {
    List<String> findWetlandPicturesByWetlandIds(List<String> wetlandIds);

    WetlandBasicEntity findWetlandByWetlandId(String wetlandId);

    boolean checkWetlandNameExists(String wetlandName);

    WetlandBasicEntity findWetlandByWetlandName(String wetlandName);

    ServerResponse<List<WetlandBasicEntity>> findWetlandsByMultiConditions(String queryString);

   // List<WetlandStatisticsResultByCityEntity> statisticsByCity();

    List<Document> getWetlandCountsByLevel();

    List<Document> getWetlandAreasByLevel();

    List<WetlandBasicEntity> getAllWetlandsByPage(Integer start, Integer length, String orderName, String order);

    WetlandBasicEntity addWetlandBasicInfo(WetlandBasicEntityParam wetlandBasicEntityParam);

    ServerResponse deleteWetlandByWetlandId(String wetlandId);

    ServerResponse<List<WetlandBasicEntity>> findAllWetlands();

    ServerResponse<List<WetlandBasicEntity>> findWetlandsByWetlandIds(List<String> wetlandIds);

    ServerResponse<List<WetlandBasicEntity>> findWetlandsByFuzzySearch(String queryString);

    ServerResponse uploadWetlandsExcel(MultipartFile uploadExcel) throws IOException;
}
